/*******************************************************************************
 * Copyright (c) 2010 Mikhail Garber.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Lesser Public License (LGPL)
 * which accompanies this distribution
 * 
 * Contributors:
 *     Mikhail Garber - initial API and implementation
 ******************************************************************************/
package plumber.annotations;

/**
 * Annotation used to indicate which step to run if certain things happen
 * @author mgarber
 *
 */
public @interface Outcome {

	/**
	 * run this step next if classname of the return value of Step execution matches this
	 * @return name of the class to match
	 */
	String ifClassName() default "";
	
	/**
	 * run this step next if Step execution throws exception matching this exception
	 * @return name of the exception class to match
	 */
	String ifExceptionClassName() default "";
	
	/**
	 * run this step next if result of Step execution matches this value
	 * @return value to match
	 */
	String ifValue() default "";
	
	/**
	 * step to run next
	 * @return name of the next
	 */
	String nextStep();
}
